import * as actionTypes from "./constants";
import { fromJS } from "immutable";

const defaultState = fromJS({
  topicList: [
    {
      id: 0,
      title: "如何评价手机游戏《企鹅岛》？",
      imgUrl: "http://www.coder-lei.cn/public/pages/reactDemo/img/item1.jpg",
      desc:
        "绅士乌拉拉： 简介 2个月前无意中被同时安利了这么一款放置的休闲小游戏——《企鹅岛》，本着尝鲜的态度体验，结果一玩就是一个多月，沉迷其中。 作为一个也算玩过不少游戏的从业者，被这么一款小游戏征服的这么彻底，…",
      commentCount: 199,
      likeCount: 999,
      isDisplay: false
    },
    {
      id: 1,
      title: "如何评价手机游戏《企鹅岛》？",
      imgUrl: "http://www.coder-lei.cn/public/pages/reactDemo/img/item1.jpg",
      desc:
        "绅士乌拉拉： 简介 2个月前无意中被同时安利了这么一款放置的休闲小游戏——《企鹅岛》，本着尝鲜的态度体验，结果一玩就是一个多月，沉迷其中。 作为一个也算玩过不少游戏的从业者，被这么一款小游戏征服的这么彻底，…",
      commentCount: 199,
      likeCount: 999,
      isDisplay: false
    },
    {
      id: 2,
      title: "如何评价手机游戏《企鹅岛》？",
      imgUrl: "http://www.coder-lei.cn/public/pages/reactDemo/img/item1.jpg",
      desc:
        "绅士乌拉拉： 简介 2个月前无意中被同时安利了这么一款放置的休闲小游戏——《企鹅岛》，本着尝鲜的态度体验，结果一玩就是一个多月，沉迷其中。 作为一个也算玩过不少游戏的从业者，被这么一款小游戏征服的这么彻底，…",
      commentCount: 199,
      likeCount: 999,
      isDisplay: false
    },
    {
      id: 3,
      title: "如何评价手机游戏《企鹅岛》？",
      imgUrl: "http://www.coder-lei.cn/public/pages/reactDemo/img/item1.jpg",
      desc:
        "绅士乌拉拉： 简介 2个月前无意中被同时安利了这么一款放置的休闲小游戏——《企鹅岛》，本着尝鲜的态度体验，结果一玩就是一个多月，沉迷其中。 作为一个也算玩过不少游戏的从业者，被这么一款小游戏征服的这么彻底，…",
      commentCount: 199,
      likeCount: 999,
      isDisplay: false
    },
    {
      id: 4,
      title: "如何评价手机游戏《企鹅岛》？",
      imgUrl: "http://www.coder-lei.cn/public/pages/reactDemo/img/item1.jpg",
      desc:
        "绅士乌拉拉： 简介 2个月前无意中被同时安利了这么一款放置的休闲小游戏——《企鹅岛》，本着尝鲜的态度体验，结果一玩就是一个多月，沉迷其中。 作为一个也算玩过不少游戏的从业者，被这么一款小游戏征服的这么彻底，…",
      commentCount: 199,
      likeCount: 999,
      isDisplay: false
    }
  ],
  topItemList: [
    {
      id: 0,
      icon: "\ue610",
      title: "写回答"
    },
    {
      id: 1,
      icon: "\ue9dd",
      title: "写文章"
    },
    {
      id: 2,
      icon: "\ue638",
      title: "写想法"
    },
    {
      id: 3,
      icon: "\ue7b8",
      title: "发视频"
    },
    {
      id: 4,
      icon: "\ue808",
      title: "稍后答"
    },
    {
      id: 5,
      icon: "\ue632",
      title: "草稿箱"
    }
  ],
  botItemList: [
    {
      id: 6,
      icon: "\ue62e",
      title: "Live"
    },
    {
      id: 7,
      icon: "\ue603",
      title: "书店"
    },
    {
      id: 8,
      icon: "\ue604",
      title: "圆桌"
    },
    {
      id: 9,
      icon: "\ue606",
      title: "专栏"
    },
    {
      id: 10,
      icon: "\ue733",
      title: "付费咨询"
    },
    {
      id: 11,
      icon: "\ue600",
      title: "百科"
    }
  ],
  collectList: [
    {
      id: 0,
      icon: "\ue66b",
      number: '0',
      title: "我的收藏"
    },
    {
      id: 1,
      icon: "\ueb81",
      number: 9,
      title: "我关注的问题"
    },
    {
      id: 2,
      icon: "\ue658",
      number: 200,
      title: "我的邀请"
    },
    {
      id: 3,
      icon: "\ue733",
      title: "我的余额"
    },
    {
      id: 4,
      icon: "\ue602",
      title: "站务中心"
    },
    {
      id: 5,
      icon: "\ue640",
      title: "版权服务中心"
    }
  ]
});

const changeLikeCount = (state, id) => {
  let newState = state.toJS()
  newState.topicList[id].likeCount += 1
  return defaultState.set('topicList', fromJS(newState.topicList))  
}

const changeItemDisplayTrue = (id) => {
  let newState = defaultState.toJS();
  newState.topicList[id].isDisplay = true;
  defaultState.set("topicList", fromJS(newState.topicList));
  return defaultState.set("topicList", fromJS(newState.topicList));
}

const changeItemDisplayFalse = (id) => {
  let newState = defaultState.toJS();
  newState.topicList[id].isDisplay = false;
  defaultState.set("topicList", fromJS(newState.topicList));
  return defaultState.set("topicList", fromJS(newState.topicList));
}

// const changeDemoCount = (count) => {
//   count++
//   return defaultState.set('demoData', count)
// }
export default (state = defaultState, action) => {
  switch (action.type) {
    case actionTypes.CHANGE_ITEM_DISPLAY_TRUE:
      return changeItemDisplayTrue(action.id)
    case actionTypes.CHANGE_ITEM_DISPLAY_FALSE:
      return changeItemDisplayFalse(action.id)
    case actionTypes.CHANGE_LIKE_COUNT:
      return changeLikeCount(state, action.id)
    // case actionTypes.CHANGE_DEMO_COUNT:
    //   return changeDemoCount(state, action.count)
    default:
      return state;
  }
};
